Generally described, computing devices can be utilized to display images to computer users on a display screen. To generate various images, the typical computer display is made up of a grid of equal-sized blocks generally referred to as pixels. For example, a display screen may be made up of a grid of 1024 pixels in width and 820 pixels in height. To generate color images on the display, each pixel within the display screen can be individually controlled by a computer such that each pixel can be given a unique color. Further, overall image appearance can be enhanced by various display attributes, such as image opaqueness or transparency. Accordingly, one skilled in the relevant art will appreciate that the quality of displayed color images depends greatly on the number of pixels in the display screen (e.g., resolution), the palette of colors available for each pixel, and the availability of other display attributes.
In one common embodiment, a pixel color is achieved by combining red, green and blue characteristics to generate a particular color. More specifically, each pixel is assigned a particular red value, green value and blue value, which are generated by the display screen to form a resulting color for the pixel. The specification of the three-color value is typically referred to as the red, green and blue value, or RGB value, of the pixel. One skilled in the relevant art will appreciate that the number of potential red, green and blue values for a pixel is dependent entirely on the amount of data utilized to specify the data. For example, in a binary representation, if 8 bits are used to represent each color value in a binary representation (e.g., 8-bit red value, 8-bit green value, and 8-bit blue value), there would be would be 28, or 256, possibilities for each color value. Based on an 8-bit representation, there would be more than 16 million possible RGB combinations (256 red×256 green×256 blue). Accordingly, screen display color resolution benefit greatly, in terms of total possible colors, from representing pixel color attributes utilizing at least 8 bits per color value.
In another embodiment, more complex computer displays can be generated from the use of overlapping images within the same display. By associating transparency properties to the images in the display, portions of an underlying image (e.g., the destination image) may be at least partially visible through an overlying image or set of images (e.g., the source image). For example, a display may be controlled to give the appearance of fading or shadowing by selectively adjusting the transparency attribute of a source image over a given period of time such that portions of a destination image becomes more visible over time. To add transparency to a set of images, each pixel corresponding to the image may be associated with a transparency property value. For example, a semi-transparent transparency property for a pixel will result in the original color of the pixel being displayed that allows some portion of an underlying image to be partially visible. In contrast, the same pixel with an opaque (e.g., no transparency) transparency property will be correspond to the original color of the pixel being displayed in with no transparency properties.
One skilled in the relevant art will appreciate that a computer generates complex displays utilizing overlapping images and transparency properties by rendering the overlapping images utilizing an alpha blending process. Generally described, alpha blending relates to the process to the combination of the transparency attribute values, or alpha values, of a destination image with the alpha values of the source image to generate an overall appearance for each pixel in the display. In accordance with a common alpha blending embodiment, the transparency property of a complex image display is controlled primarily by the alpha value of the source image (e.g., overlying image). Equation (1) defines a typical alpha blending processing equation for defining the overall transparency property of a display pixel in a display having a destination and a source image. In accordance with Equation (1), each image's alpha value is represented as value, such as a decimal between within a range of 0–1, in which a value of 1 indicates opaqueness and a value of 0 indicates translucence.Alphaoverall=(1−Alphasource)*Alphadesintaion+Alphasource  (1)
To generate complex images, each image defines color values and transparency property values for each pixel of the display. A computer generating the display processes the multiple image color and transparency properties and renders an overall display based on a combination of the images. The rendering of complex displays having multiple images are well-known in the art and will not be described in greater detail.
As illustrated in Equation (1), the alpha property of an image may be specified as a numeric value in a sliding scale of possible transparency values with fully transparent and fully opaque as the endpoints of the scale. In a common embodiment, each pixel can be assigned a transparency property value is represented by an additional data that allows alpha blending on a per pixel basis. In one common embodiment, 8 bits of data are used to represent pixel transparency values providing 28, or 256, possible transparency values for each pixel in the image display. For example, a value of “0” would indicate complete transparency and a value of “255” would indicate complete opaqueness. Because the transparency specification data is in addition to the color value data, in a typical 8-bit representation environment, 32 bits would be required to specify pixel color (e.g., 24 bits) and pixel transparency (e.g., 8 bits).
Although representing pixel color and transparency attributes utilizing 8-bits per color value and for pixel transparency results in improved display images, there are a number of environments in which limited data transfer bandwidth may effect the ability to specify the full range of possible colors. For example, in a communication network environment, such as the Internet, the performance of data delivery, such as the delivery of a Web page, is optimized by limiting the amount of data transmitted over network. In an environment utilizing 8-bit RGB values and 8-bit transparency values, the transfer of 32-bits of data per pixel result in transferring more than 26 million bits of data per page of display for a 1024 by 820 pixel display screen. Further, in addition to the issues related to minimizing data size for transmittal, there are a number of issues related to minimizing data size for storing and processing larger image data. Accordingly, there is an emphasis to improve computer performance by approximating color and transparency data for each pixel with a lesser amount of data while mitigating the potential color degradation associated with the lesser data.
There have been a number of attempts to facilitate image data transmission through the use of compression methodologies, such as the Joint Picture Experts Group (JPEG), Portable Network Graphics (PNG) and the Graphics Interchange Format (GIF) methodologies. Generally described, most common compression methodologies compress original image data utilizing one of a variety of algorithms and then transmit the compressed image data across a communication network. Many image compression formats/methodologies, such as JPEG and GIF, are limited in their ability to process image transparency information. Accordingly, complex image rendering is not feasible for these types of compressed images. Further, in many image formats such as JPEG and PNG, to render the image, a receiving computer must uncompress the processed image data, store the uncompressed image in memory and render the image from the uncompressed image. Thus, these formats only mitigate the strain on image data transmission and are generally inefficient for storing and rendering images on a computer.
Thus, there is a need for an image approximation method that preserves distinctive pixel color and image transparency values, while minimizing the amount of data required to represent the color and transparency information during transmission and in memory.